<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>02_选择排序</title>
  </head>
  <body>
    <script>
      /* 选择排序 */
      function selectionSort(arr) {
        const length = arr.length
        let indexMin
        // 找出数组中的最小值，放在i位置，因此i取不到最后的length-1位置
        for (let i = 0; i < length - 1; i++) {
          // 假设当前索引i值为最小值
          indexMin = i
          // 从当前i值开始循环至数组结束(寻找最小值的数组范围)
          for (let j = i; j < length; j++) {
            // 判断当前索引j值是否比当前最小值小
            if (arr[j] < arr[indexMin]) {
              // 如果小，则j为当前最小值的索引
              indexMin = j
            }
          }
          // 交换位置
          if (i !== indexMin) {
            const temp = arr[i]
            arr[i] = arr[indexMin]
            arr[indexMin] = temp
          }
        }
        return arr
      }
      var arr = [1, 4, 3, 5, 2]
      console.log(selectionSort(arr))
    </script>
  </body>
</html>
